# -*- coding: utf-8 -*-
"""
Created on Thu Aug 10 22:31:50 2023

@author: skunk69
"""

import json

chinese_name = u'社会支持评定量表'
english_name = 'Social Support Rating Scale'
abbreviation = 'SSRS'
category = u'应激及相关行为量表'

outline = u"""多数学者认为，良好的社会支持有利于健康，而劣性社会关系的存在则损害身心健康。社会支持一方面对应激状态下的个体提供保护，即对应激起缓冲作用，另一方面对维持一般的良好情绪体验具有重要意义。
为了提供评定社会支持的工具，肖水源于1986年设计了一个十条的《社会支持评量表》并在小范围内试用，1990年又根据使用情况进行了小规模修订。"""

instruction = u"""下面的问题用于反映您在社会中所获得的支持，请按各个问题的具体要求，根据您的实际情况选择。谢谢您的合作。"""

with open('SSRS.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()

items = {}
for key,line in enumerate(lines):
    _,value = line.strip().split('）',maxsplit=1)
    items[key+1] = value.strip()

reverse_items = []
scales = [u'主观支持',u'客观支持',u'对支持利用度']
scales_items = [
    [1,3,4,5],# 主观支持
    [2,6,7],# 客观支持
    [8,9,10],# 对支持利用度
    ]

factors = []
factors_scales = []

# complex rating for SSRS
rating = {}
rating[1] = {
    1:u'一个也没有',
    2:u'1~2个',
    3:u'3~5个',
    4:u'6个或6个以上',
    }
rating[2] = {
    1:u'远离家人，且独居一室。',
    2:u'住处经常变动，多数时间和陌生人住在一起。',
    3:u'和同学、同事或朋友住在一起。',
    4:u'和家人住在一起。',
    }
rating[3] = {
    1:u'相互之间从不关心，只是点头之交。',
    2:u'遇到困难可能稍微关心。',
    3:u'有些邻居都很关心您。',
    4:u'大多数邻居都很关心您。',
    }
rating[4] = {
    1:u'相互之间从不关心，只是点头之交。',
    2:u'遇到困难可能稍微关心。',
    3:u'有些同事很关心您。',
    4:u'大多数同事都很关心您。',
    }
item5 = {
    'A':u'夫妻（恋人）',
    'B':u'父母',
    'C':u'儿女',
    'D':u'兄弟姐妹',
    'E':u'其他成员（如嫂子）',
    }
rate5 = [u'无',u'极少',u'一般',u'全力支持']
rating[5] = [item5,rate5]
choices = {
    'A':u'配偶',
    'B':u'其他家人',
    'C':u'朋友',
    'D':u'亲戚',
    'E':u'同事',
    'F':u'工作单位',
    'G':u'党团工会等官方或半官方组织',
    'H':u'宗教、社会团体等非官方组织',
    'I':'其它（请列出）：',
    }
rating[6] = {
    1:u'无任何来源。',
    2:[u'下列来源：（可选多项）',choices],
    }
rating[7] = {
    1:u'无任何来源。',
    2:[u'下列来源:（可选多项）',choices],
    }
rating[8] = {
    1:u'从不向任何人诉述。',
    2:u'只向关系极为密切的1~2个人诉述。',
    3:u'如果朋友主动询问您会说出来。',
    4:u'主动诉述自己的烦恼，以获得支持和理解。',
    }
rating[9] = {
    1:u'只靠自己，不接受别人帮助。',
    2:u'很少请求别人帮助。',
    3:u'有时请求别人帮助。',
    4:u'有困难时经常向家人、亲友、组织求援。',
    }
rating[10] = {
    1:u'从不参加。',
    2:u'偶尔参加。',
    3:u'经常参加。',
    4:u'主动参加并积极活动。',
    }

score_rules = list(range(1,5))

contents = {
    'instruction':instruction,
    'items':items,
    'reverse_items':reverse_items,
    'scales':scales,
    'scales_items':scales_items,
    'factors':factors,
    'factors_scales':factors_scales,
    'rating':rating,
    'score_rules':score_rules       
    }

implementation = u"""该量表属于一个自评量表，适用于14岁以上各类人群（尤其是普通人群）的健康测量。本测验结果还可以作为影响因素引入心理障碍、疾病的成因研究中。"""

reliability = u"""编者用该量表对大二学生群体进行测试，具有良好的重测信度。"""
validity = u"""该量表发表以来，许多研究者应用该量表进行了多方面研究，证明了其良好的实证效度。"""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""计分方法
（一）社会支持评定量表条目计分方法
1、第1-4，8-10条：每条只选一项，选择1，2，3，4项分别计1，2，3，4分。
2、第5条分A，B，C，D四项计总分，每项从无到全力支持分别计1—4分。
3、第6、7条如回答“无任何来源”则计0分，回答“下列来源”者，有几个来源就计几分。
（二）社会支持评定量表分析方法
1、总分：即十个条目计分之和。
2、客观支持分：2，6，7条评分之和。
3、主观支持分：1，3，4，5条评分之和。
4、对支持的利用度：第8，9，10条评分之和。
结果评定：
1、客观支持：客观的、可见的或实际的支持，包括物质上的直接支援，社会网络、团体关系的存在和参与等。
2、主观支持：个体在社会中受尊重、被支持、被理解的情感体验。
3、对社会支持的利用度：个体对社会支持的利用存在着差异，有些人虽可获得支持，却拒绝别人的帮助，并且，人与人的支持是一个相互作用的过程，一个人在支持别人的同时，也为获得别人的支持打下了基础。
判断标准：分数越高，社会支持度越高，一般认为总分小于20分，获得社会支持较少，20-30分为具有一般社会支持度，30-40分为具有满意的社会支持度。"""

applications = u"""多年来，已公开发表了大量将《社会支持评定量表》应用于各种研究的论文。"""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':contents,
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)